from numpy import *
from pylab import *
#~ from pylab import *
import ueye 
from slmmanager import SLMManager
import time


t=[]
p=[]

for i in range(1024):
    r = (255/2)*(1+cos(2*pi*i/800))
    p.append(int(r))


#z=a

b=2
d=[]

for a in p:

#a=input("ingrese un numero entero ")



###########  Conversion a binario ##############################################
    while a>=2:
        b=a%2
        c=a/2
        a=c
        d.append(b)
    d.append(1)

######## Aqui se completan los ocho bits en caso de ser nesesario  ############

    if len(d)<8:
        while len(d)<8:
            d.append(0)

#########################################################################


################## Se ponen los numeros en el orden adecuado ############# 
    l=[]
    u=0

    for k in range(len(d)):
        u=u+1
        l.append(d[-u])
##########################################################################

#~ 

#~ 
###############  Conversion de binario a Gray #############################

    h=[]

    h.append(l[0])


    for i in range(7):
        if l[i]+l[i+1]==1:
            h.append(1)
        if l[i]+l[i+1]==0:
            h.append(0)
        if l[i]+l[i+1]==2:
            h.append(0)

###########################################################################

    t.append(h)


r=[]
g=[]


#######Controladores####################
slm=SLMManager(":0.1")
SLM=SLMManager(":0.0",border=True) 
cam=ueye.Cam(128)
########################################


for w in range(8):
    for y in t:
        r.append(y[w])
    g.append(r)        
    r=[]

print len(t)
print len(g)
print len(g[0])


m=zeros((768,1024))

contN=1

for f in range(8):
    
    for i in range(1024):
        for j in range(768):    
            m[j][i]=m[j][i]+g[f][i]
    
    SLM.send(m*255)
    slm.send(m*255)
     
    #~ figure()
    #imshow(m,cmap="gray")
    #im3=imread('m.png')[:,:,0]*255
    #SLM.send(im3)
    #slm.send(im3)
    #m1=m[:,:,0]*255
    time.sleep(.5)	
    captura=cam.GrabImage()
    gray()
    imsave('imG1_0%d'%contN,captura)
    #~ imshow(captura)
    

    m=zeros((768,1024))
    contN+=1
  
    
    
    
#show()

